package com.five.api.dao;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.five.entity.Article;
import com.five.qo.ArticleCommentQO;

import java.util.List;
import com.five.entity.qo.ArticleQo;
import com.five.entity.qo.UsersAndArticles;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 * 博客文章表 Mapper 接口
 * </p>
 *
 * @author star
 * @since 2021-06-16
 */
public interface ArticleMapper extends BaseMapper<Article> {
    /**
     * 根据用户id查询文章
     * @param userId 用户id
     * @return 文章列表
     */
    List<ArticleCommentQO> selectArticleByUserId(Long userId);

    /**
     *   展示文章列表
     * @return
     */
    List selectArticleList();

    /**
     *  分类分页展示文章列表
     * @param page   页数
     * @param articleQo  类别
     * @return
     */
    List selectArticleByPageAndType(Page page,ArticleQo articleQo);


    /**
     *  统计用户和发表文章数
     * @return
     */
    UsersAndArticles selectArticleToSum();

    /**
     * 获取文章详情信息
     * @param id
     * @return
     */
    Article getArticleDetail(Long id);


    /**
     * 修改文章详细信息
     * @param articleTypeId 类型id
     * @param title 标题
     * @param articleDescribe 描述
     * @param content 内容
     * @param id 文章id
     * @return 1-成功 0-失败
     */
    int updateArticleDetail(@Param("articleTypeId") Long articleTypeId,
                            @Param("title") String title ,
                            @Param("articleDescribe") String articleDescribe,
                            @Param("content") String content,
                            @Param("id") Long id);


}
